package com.carb.service;

import com.carb.dto.UserAddDTO;
import com.carb.dto.UserLoginDTO;
import com.carb.dto.UserPageQueryDTO;
import com.carb.dto.UserUpdateDTO;
import com.carb.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.carb.enums.CommonStatus;
import com.carb.result.PageResult;
import com.carb.vo.UserLoginVO;

/**
 * <p>
 * 用户管理 服务类
 * </p>
 *
 * @author XuChaoyang
 * @since 2025-01-18
 */
public interface IUserService extends IService<User> {

    UserLoginVO login(UserLoginDTO userLoginDTO);

    PageResult<User> pageQuery(UserPageQueryDTO userPageQueryDTO);

    void updateStatus(Long id, CommonStatus status);

    User getUserById(Long id);

    void updateUser(UserUpdateDTO userUpdateDTO);

    void addAdmin(UserAddDTO userAddDTO);

    void deleteAdmin(Long id);

    void updatePassword(Long id, String password);
}
